<html>
<head>

</head>
<body>
    <script>
        //控制台输出comsole.log 
       console.log('11'+11);
       console.log(`alart=${alert}`)
       //网页输出document.write
       document.write(`alart=${alert}`)
       //弹出框alert
       alert('弹出框测试')
       //输入框prompt
       var input = prompt('请输入内容：');//接收用户输入
       console.log(input);//打印
       //确认框confirm
       var result = confirm('确认框测试');//接收用户确认
       console.log(result);//打印true或false
       /*********************/
       //变量类型
       var num = 10;//or let num = 10;
       var str = 'hello';
       var bool = true;
       var arr = [1,2,3];
       var obj = {name:'张三',age:20};
       console.log(typeof num);//number
       console.log(typeof str);//string
       console.log(typeof bool);//boolean
       console.log(typeof arr);//object
       console.log(typeof obj);//object
       //类型转换
       ///隐式转换
       //转换成字符串
       console.log(num+'');//"10"
       console.log(str+'');//"hello"
       console.log(bool+'');//"true"
       console.log(arr+'');//"1,2,3"
       console.log(obj+'');//"[object Object]"
       ////转换成数字
       console.log(+'10')//10
       console.log(+'10.5')//10.5
       console.log(+'true')//1
       console.log(+'false')//0
       console.log(+'hello')//NaN
       console.log(+'[1,2,3]')//NaN
       //显示转换
       console.log(parseInt('10'));//10
       console.log(parseFloat('10.5'));//10.5
       console.log(Number('10'));//10
       console.log(String(10));//"10"
       console.log(Boolean(10));//true
       console.log("数字转为数组"+Array(10)+Array(10).length);//[,,,,,,,]10//10个空元素的数组
       console.log(Object({name:'张三',age:20}));//{name:"张三",age:20}
       //运算符
       var a = 10;
       var b = 5;
       console.log(a**b);//10000000000
       //a为false时，不再计算b-a为true时，返回b
       console.log(a&&b);//5
       //a为true时，不再计算b-a为false时，返回a
       console.log(a||b);//10
       console.log(!a);//false
       console.log(2 == '2')//true//发生了隐式转换
       console.log(2 === '2')//false//不发生隐式转换，建议使用===
       console.log(2 != '2')//false
       console.log(2 !== '2')//true
       //null undifined false 0 NaN  '' 的比较太麻烦了，尽量别用
       //JS中的假值包括：false、null、undefined、0、NaN、''
       //三元运算符,与C语言中的三元运算符类似
       console.log(true?10:20);//10
       
       var a;
       console.log(a);//undefined
       var a = null;
       console.log(a);//null
       const PI = 3.1415926;//常量声明
       console.log(PI);//3.1415926
       var a='hello'-10;
       console.log(a);//NAN错误操作，值得一提的是typeof NaN === 'number'
       console.log(a+2)//NaN

       //JS中的字符串
       var str = 'hello world';
       var str1;
       //获取字符串长度
       console.log(str.length);//11
       //获取字符串某个位置的字符
       console.log(str.charAt(0));//h
       console.log(str.charAt(str.length-1));//d
       //获取字符串某个范围的字符
       console.log(str.substring(6));//world
       //slice方法与substring方法类似，但是slice方法可以接收负数
       console.log(str.slice(6));//world
       console.log("slice(-5) ="+str.slice(-5));
       //获取字符串中某个字符出现的次数
       console.log(str.split('l').length-1);//3
       //判断字符串是否包含某个字符
       console.log(str.includes('l'));//true
       console.log(str.includes('L'));//false
       //判断字符串是否以某个字符开头
       console.log(str.startsWith('he'));//true
       //判断字符串是否以某个字符结尾
       console.log(str.endsWith('ld'));//true
       //查找字符串中某个字符的位置
       console.log(str.indexOf('l'));//2
       console.log(str.lastIndexOf('l'));//9
       //替换字符串中的字符
       console.log(str.replace('l','L'));//heLlo world
       //转换字符串为大写
       console.log(str.toUpperCase());//HELLO WORLD
       //转换字符串为小写
       console.log(str.toLowerCase());//hello world
       //分割字符串为数组
       console.log(str.split(' '));//["hello","world"]
       //去除字符串两端的空格
       console.log(str.trim());//"hello world"
       //模板字符串
       var name = '张三';
       var age = 20;
       var str = `我是${name}，今年${age}岁。`;//注意是反引号"`"
       console.log(str);//我是张三，今年20岁。

       //JS中的数组
       var arr = [1,2,3,4,5];
       console.log(arr.length);//5
       console.log(arr[0]);//1
       console.log(arr.push(6));//6
       console.log(arr);//[1,2,3,4,5,6]
       console.log(arr.pop());//6
       console.log(arr);//[1,2,3,4,5]
       console.log(arr.shift());//1//删除数组第一个元素
       console.log(arr);//[2,3,4,5]
       console.log(arr.unshift(0));//4//在数组最前面插入元素
       console.log(arr);//[0,2,3,4,5]
       console.log(arr.reverse());//[5,4,3,2,0]
       console.log(arr.splice(1,2));//[2,3]//从索引1开始删除2个元素，并返回它们
       console.log(arr);//[0,4,5]
       console.log(arr.concat([6,7]));//[0,4,5,6,7]//合并数组
       console.log(arr.join('-'));//0-4-5-6-7,//数组元素用某个字符连接返回字符串
       
       //JS中的switch语句
       var num = 10;
       switch(num){
           case 10:
               console.log('等于10');
               break;
           case 20:
               console.log('等于20');
               break;
           default:
               console.log('其他值');
       }
       //JS中的if语句与while语句与C语言类似，但是JS中没有do-while语句，不做展示
      
       //JS中的for循环
       for(var i=0;i<5;i++){
           console.log(i);
       }
       </script>
</body>
</html>